In a character generating device such as a laser printer, characters formed by dot patterns are displayed by a raster scan method.
FIG. 1 shows a typical example of a conventional character generating device for use in a laser printer of the above type. The device comprises a counter 1 which receives dot clocks for counting the number of dots forming a part of a character to be displayed on one scanning line in the scanning direction (i.e., in the lateral direction) and a column counter 2 which receives a signal from the counter 1 to increase its output data by one count. A text buffer 3 formed by a RAM (random access memory) stores image data of respective characters included in one page in forms of character codes for generating character codes in response to signals from the column counter 2. The text buffer 3 can be optionally edited by software. The character codes may be formed by, e.g., ASCII (American Standard Code of Information Interchange) codes, and when a code for one character is represented by eight bits (one byte) and one page is formed of 80 characters by 80 rows, the memory size of the RAM is 6,400 bytes (6.4 kilo bytes). A character generator 4 functions to store dot pattern information of the display characters and respond to the character code from the text buffer 3 to generate the dot patterns of the corresponding characters. For example, when 128 sorts of characters, each of which is formed of 32 dots.times.32 dots, are stored, the memory size of the character generator 4 is 16,384 bytes (approximately 16 kilo bytes). By forming the character generator 4 by a RAM, a desirable sort of font can be down-loaded. A parallel/serial conversion circuit (PSC) 5 is formed by a register for controlling the dot pattern information for one character from the character generator 4 based on dot clocks and converting the same into display serial data in one raster. Numeral 6 indicates a printing head of a laser printer.
In explaining operation of the character generation device as shown in FIG. 1, it is assumed that the text buffer 3 stores the character codes in order of "w i d t . . . " and the forefront address is 0000H. Consequently, the initial address number of the column counter 2 is 0000H. It is further assumed that the dot pattern for each character is formed by 32 dots.times.32 dots. Consequently, the number "32" is set in the counter 1 as the dot number for one character in the scanning direction.
The text buffer 3 receives an address signal "0000H" from the column counter 2 to output a character code for a character "w" corresponding to the address "0000H" toward the character generator 4, which in turn processes the received character code as an address signal to output the dot pattern for the character "w" toward the PSC 5. The PSC 5 outputs the dot pattern for the character "w" by the dot clocks in the unit of raster while the counter 1 counts the dot clocks to generate a borrow signal when it counts the set number of "32" so that the column counter 2 is operated by this borrow signal to increase the output of the address signal toward the text buffer 3 by one count to "0001H". By virtue of this, the text buffer 3 outputs the character code for the next character "i" toward the character generator 4, which in turn generates the dot pattern of the character "i" toward the PSC 5. Then the PSC 5 outputs the dot pattern of the character "i" for the period of 32 times of the dot clocks. Successively in a similar manner, the dot patterns of the characters "d", "t", . . . are output respectively for the same period of the dot clocks, to be printed out by the printing head 6.
Since each of the characters thus printed out by the printer or displayed in the CRT display unit is, as shown in FIG. 2, fixed in a predetermined dot matrix (32 bits.times.32 bits in this case) to be displayed, the display characters cannot be evenly spaced due to the difference in character width of the character displayed in the direction of the rows, leading to inconvenience in reading out messages.
Accordingly, there is required what is called "fitting" in which the spaces between adjacent characters are varied with the sorts of the characters. Known conventional fitting methods are: (1) to store an image of one page in the unit of dots so as to change the spaces between the characters by software; (2) to store fitting data in addition to the respective character codes in the text buffer; and (3) to store fitting information in the character generator in addition to the character pattern information.
However, the first method (1) requires a buffer memory of large capacity. When, for example, the number of the dots per 1 mm is ten, memories of 6.24 mega bits (780 kilo bytes) are required for printing on an A4 size paper [(10 bits/mm.times.210 mm).times.(10 bits/mm.times.297 mm)]. Also in the second method (2), the capacity of the text buffer should be made large. For example, when the number of the characters for one page is set as 80 characters/row.times.80 rows=6,400 characters while each character code and the fitting datum are respectively represented by eight bits and two bits, additional memories of 2 bits.times.6400=12.8 kilo bits (1.6 kilo bytes) are required due to the addition of the fitting datum. Besides, a two-bit fitting datum can merely carry out four kinds of fitting at the best. Since a general CRT display unit has small numbers of character-forming dots (e.g., 5 dots.times.7 dots), the number of the kinds of the fitting sizes may be small. However, since a laser printer has high dot resolution capacity and a large number of character-forming dots (e.g., 32 dots.times.32 dots), various width of characters may be subdividedly defined, requiring various kinds of fitting sizes. Effectuation of eight kinds of fitting sizes requires three-bit fitting data while effectuation of sixteen kinds of fitting sizes requires four-bit fitting data. Thus, with the method of the aforementioned item (2), the memory capacity of the text buffer is increased in proportion to the increase in the kinds of the fitting sizes. Further, for inputting the fitting values into the counter, a decoder is required to convert the fitting datum into the fitting values, and the construction of the decoder becomes complicated with an increase in the kinds of the fitting sizes.
In the third method, (3), further, the capacity of the character generator must be remarkably increased. FIG. 3 shows the most simplified circuit embodying this method contemplated by the present inventors, in which the character generator 4 stores fitting information in addition to various kinds of character information in a form as shown in FIG. 4. When, in this case, the character is formed by 32 dots.times.32 dots and the fitting datum is formed by two bits, the memory capacity must be increased by 32.times.2 bits with respect to one character. Therefore, when 256 sorts of characters are to be processed, 32.times.2.times.256=16,384 bits (2 kilo bytes) are required only for storing the fitting data. Likewise to the aforementioned method (2), the decoder 7 for converting the fitting datum to an actual fitting value is complicated and, further, the memory capacity of the character generator 4 is increased with the increase of the fitting sizes when various kinds of fitting sizes are required.